package com.zkthink.ceres.pay.dto;

import com.zkthink.base.entity.SuperEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import javax.validation.constraints.NotNull;
import org.hibernate.validator.constraints.Length;
import lombok.Data;
import lombok.Builder;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;
import java.io.Serializable;

/**
 * <p>
 * 实体类
 * 微信支付认证
 * </p>
 *
 * @author vivi.huang
 * @since 2020-06-28
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = false)
@Builder
@ApiModel(value = "WxPayAuthUpdateDTO", description = "微信支付认证")
public class WxPayAuthUpdateDTO implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "主键")
    @NotNull(message = "id不能为空", groups = SuperEntity.Update.class)
    private Long id;

    /**
     * 店铺认证类型(1:微信支付)
     */
    @ApiModelProperty(value = "店铺认证类型(1:微信支付)")
    private Integer authType;
    /**
     * 审核状态 0:审核中,1:审核通过,2:审核失败,3:使用中 
     */
    @ApiModelProperty(value = "审核状态 0:审核中,1:审核通过,2:审核失败,3:使用中 ")
    private Integer auditState;
    /**
     * 业务申请编号	
     */
    @ApiModelProperty(value = "业务申请编号	")
    @Length(max = 150, message = "业务申请编号	长度不能超过150")
    private String outRequestNo;
    /**
     * 主体类型 2041：个人,4:个体工商户,2:企业,1708:其他组织
     */
    @ApiModelProperty(value = "主体类型 2041：个人,4:个体工商户,2:企业,1708:其他组织")
    @Length(max = 10, message = "主体类型 2041：个人,4:个体工商户,2:企业,1708:其他组织长度不能超过10")
    private String organizationType;
    /**
     * 营业执照/登记证书信息 证件扫描件
     */
    @ApiModelProperty(value = "营业执照/登记证书信息 证件扫描件")
    @Length(max = 10, message = "营业执照/登记证书信息 证件扫描件长度不能超过10")
    private String businessLicenseCopy;
    /**
     * 证件扫描件 文件路径
     */
    @ApiModelProperty(value = "证件扫描件 文件路径")
    @Length(max = 250, message = "证件扫描件 文件路径长度不能超过250")
    private String businessLicenseCopyFilePath;
    /**
     * 证件注册号
     */
    @ApiModelProperty(value = "证件注册号")
    @Length(max = 50, message = "证件注册号长度不能超过50")
    private String businessLicenseNumber;
    /**
     * 商户名称
     */
    @ApiModelProperty(value = "商户名称")
    @Length(max = 250, message = "商户名称长度不能超过250")
    private String merchantName;
    /**
     * 经营者/法定代表人姓名
     */
    @ApiModelProperty(value = "经营者/法定代表人姓名")
    @Length(max = 250, message = "经营者/法定代表人姓名长度不能超过250")
    private String legalPerson;
    /**
     * 注册地址
     */
    @ApiModelProperty(value = "注册地址")
    @Length(max = 250, message = "注册地址长度不能超过250")
    private String companyAddress;
    /**
     * 注册地址(省)
     */
    @ApiModelProperty(value = "注册地址(省)")
    @Length(max = 250, message = "注册地址(省)长度不能超过250")
    private String companyAddressProvince;
    /**
     * 注册地址(市)
     */
    @ApiModelProperty(value = "注册地址(市)")
    @Length(max = 250, message = "注册地址(市)长度不能超过250")
    private String companyAddressCity;
    /**
     * 注册地址(区)
     */
    @ApiModelProperty(value = "注册地址(区)")
    @Length(max = 250, message = "注册地址(区)长度不能超过250")
    private String companyAddressDistrict;
    /**
     * 营业期限(开始)
     */
    @ApiModelProperty(value = "营业期限(开始)")
    @Length(max = 250, message = "营业期限(开始)长度不能超过250")
    private String businessTimeStart;
    /**
     * 营业期限(结束)
     */
    @ApiModelProperty(value = "营业期限(结束)")
    @Length(max = 250, message = "营业期限(结束)长度不能超过250")
    private String businessTimeEnd;
    /**
     * 组织机构代码证照片
     */
    @ApiModelProperty(value = "组织机构代码证照片")
    @Length(max = 250, message = "组织机构代码证照片长度不能超过250")
    private String organizationCopy;
    /**
     * 组织机构代码证照片文件路径
     */
    @ApiModelProperty(value = "组织机构代码证照片文件路径")
    @Length(max = 250, message = "组织机构代码证照片文件路径长度不能超过250")
    private String organizationCopyFilePath;
    /**
     * 组织机构代码
     */
    @ApiModelProperty(value = "组织机构代码")
    @Length(max = 250, message = "组织机构代码长度不能超过250")
    private String organizationNumber;
    /**
     * 组织机构代码有效期限
     */
    @ApiModelProperty(value = "组织机构代码有效期限")
    @Length(max = 250, message = "组织机构代码有效期限长度不能超过250")
    private String organizationTime;
    /**
     * 经营者/法人证件类型
     */
    @ApiModelProperty(value = "经营者/法人证件类型")
    @Length(max = 250, message = "经营者/法人证件类型长度不能超过250")
    private String idDocType;
    /**
     * 经营者/法人身份证信息 身份证人像面照片
     */
    @ApiModelProperty(value = "经营者/法人身份证信息 身份证人像面照片")
    @Length(max = 250, message = "经营者/法人身份证信息 身份证人像面照片长度不能超过250")
    private String idCardCopy;
    /**
     * 身份证人像面照片文件路径
     */
    @ApiModelProperty(value = "身份证人像面照片文件路径")
    @Length(max = 250, message = "身份证人像面照片文件路径长度不能超过250")
    private String idCardCopyFilePath;
    /**
     * 身份证国徽面照片
     */
    @ApiModelProperty(value = "身份证国徽面照片")
    @Length(max = 250, message = "身份证国徽面照片长度不能超过250")
    private String idCardNational;
    /**
     * 身份证国徽面照片文件路径
     */
    @ApiModelProperty(value = "身份证国徽面照片文件路径")
    @Length(max = 250, message = "身份证国徽面照片文件路径长度不能超过250")
    private String idCardNationalFilePath;
    /**
     * 身份证姓名
     */
    @ApiModelProperty(value = "身份证姓名")
    @Length(max = 250, message = "身份证姓名长度不能超过250")
    private String idCardName;
    /**
     * 身份证号码
     */
    @ApiModelProperty(value = "身份证号码")
    @Length(max = 250, message = "身份证号码长度不能超过250")
    private String idCardNumber;
    /**
     * 身份证有效期限(开始)
     */
    @ApiModelProperty(value = "身份证有效期限(开始)")
    @Length(max = 250, message = "身份证有效期限(开始)长度不能超过250")
    private String idCardValidTimeStart;
    /**
     * 身份证有效期限(结束)
     */
    @ApiModelProperty(value = "身份证有效期限(结束)")
    @Length(max = 250, message = "身份证有效期限(结束)长度不能超过250")
    private String idCardValidTimeEnd;
    /**
     * 经营者/法人其他类型证件信息 证件姓名
     */
    @ApiModelProperty(value = "经营者/法人其他类型证件信息 证件姓名")
    @Length(max = 250, message = "经营者/法人其他类型证件信息 证件姓名长度不能超过250")
    private String idDocName;
    /**
     * 证件号码
     */
    @ApiModelProperty(value = "证件号码")
    @Length(max = 250, message = "证件号码长度不能超过250")
    private String idDocNumber;
    /**
     * 证件照片
     */
    @ApiModelProperty(value = "证件照片")
    @Length(max = 250, message = "证件照片长度不能超过250")
    private String idDocCopy;
    /**
     * 证件照片文件路径
     */
    @ApiModelProperty(value = "证件照片文件路径")
    @Length(max = 250, message = "证件照片文件路径长度不能超过250")
    private String idDocCopyFilePath;
    /**
     * 证件结束日期
     */
    @ApiModelProperty(value = "证件结束日期")
    @Length(max = 250, message = "证件结束日期长度不能超过250")
    private String docPeriodEnd;
    /**
     * 是否填写结算账户信息 true false
     */
    @ApiModelProperty(value = "是否填写结算账户信息 true false")
    @Length(max = 10, message = "是否填写结算账户信息 true false长度不能超过10")
    private String needAccountInfo;
    /**
     * 结算账户信息 账户类型
     */
    @ApiModelProperty(value = "结算账户信息 账户类型")
    @Length(max = 250, message = "结算账户信息 账户类型长度不能超过250")
    private String bankAccountType;
    /**
     * 开户银行
     */
    @ApiModelProperty(value = "开户银行")
    @Length(max = 250, message = "开户银行长度不能超过250")
    private String accountBank;
    /**
     * 开户名称
     */
    @ApiModelProperty(value = "开户名称")
    @Length(max = 250, message = "开户名称长度不能超过250")
    private String accountName;
    /**
     * 开户银行省市编码
     */
    @ApiModelProperty(value = "开户银行省市编码")
    @Length(max = 250, message = "开户银行省市编码长度不能超过250")
    private String bankAddressCode;
    /**
     * 开户银行联行号
     */
    @ApiModelProperty(value = "开户银行联行号")
    @Length(max = 250, message = "开户银行联行号长度不能超过250")
    private String bankBranchId;
    /**
     * 开户银行全称 （含支行)
     */
    @ApiModelProperty(value = "开户银行全称 （含支行)")
    @Length(max = 250, message = "开户银行全称 （含支行)长度不能超过250")
    private String bankName;
    /**
     * 银行帐号
     */
    @ApiModelProperty(value = "银行帐号")
    @Length(max = 250, message = "银行帐号长度不能超过250")
    private String accountNumber;
    /**
     * 超级管理员类型
     */
    @ApiModelProperty(value = "超级管理员类型")
    @Length(max = 250, message = "超级管理员类型长度不能超过250")
    private String contactType;
    /**
     * 超级管理员姓名
     */
    @ApiModelProperty(value = "超级管理员姓名")
    @Length(max = 250, message = "超级管理员姓名长度不能超过250")
    private String contactName;
    /**
     * 超级管理员身份证件号码
     */
    @ApiModelProperty(value = "超级管理员身份证件号码")
    @Length(max = 250, message = "超级管理员身份证件号码长度不能超过250")
    private String contactIdCardNumber;
    /**
     * 超级管理员手机
     */
    @ApiModelProperty(value = "超级管理员手机")
    @Length(max = 250, message = "超级管理员手机长度不能超过250")
    private String mobilePhone;
    /**
     * 超级管理员邮箱
     */
    @ApiModelProperty(value = "超级管理员邮箱")
    @Length(max = 250, message = "超级管理员邮箱长度不能超过250")
    private String contactEmail;
    /**
     * 店铺名称
     */
    @ApiModelProperty(value = "店铺名称")
    @Length(max = 250, message = "店铺名称长度不能超过250")
    private String storeName;
    /**
     * 店铺链接
     */
    @ApiModelProperty(value = "店铺链接")
    @Length(max = 250, message = "店铺链接长度不能超过250")
    private String storeUrl;
    /**
     * 店铺二维码
     */
    @ApiModelProperty(value = "店铺二维码")
    @Length(max = 250, message = "店铺二维码长度不能超过250")
    private String storeQrCode;
    /**
     * 商户简称
     */
    @ApiModelProperty(value = "商户简称")
    @Length(max = 250, message = "商户简称长度不能超过250")
    private String merchantShortname;
    /**
     * 特殊资质
     */
    @ApiModelProperty(value = "特殊资质")
    @Length(max = 250, message = "特殊资质长度不能超过250")
    private String qualifications;
    /**
     * 补充材料
     */
    @ApiModelProperty(value = "补充材料")
    @Length(max = 250, message = "补充材料长度不能超过250")
    private String businessAdditionPics;
    /**
     * 补充说明
     */
    @ApiModelProperty(value = "补充说明")
    @Length(max = 250, message = "补充说明长度不能超过250")
    private String businessAdditionDesc;
    /**
     * 统一社会信用代码
     */
    @ApiModelProperty(value = "统一社会信用代码")
    @Length(max = 250, message = "统一社会信用代码长度不能超过250")
    private String socialCreditCode;
    /**
     * 客服电话
     */
    @ApiModelProperty(value = "客服电话")
    @Length(max = 250, message = "客服电话长度不能超过250")
    private String customerPhone;
    /**
     * 店铺图片
     */
    @ApiModelProperty(value = "店铺图片")
    @Length(max = 250, message = "店铺图片长度不能超过250")
    private String storePicFilePath;
    /**
     * 手持证件
     */
    @ApiModelProperty(value = "手持证件")
    @Length(max = 250, message = "手持证件长度不能超过250")
    private String holdingCertificateFilePath;
    /**
     * 签约链接
     */
    @ApiModelProperty(value = "签约链接")
    @Length(max = 250, message = "签约链接长度不能超过250")
    private String signUrl;
    /**
     * 电商平台二级商户号
     */
    @ApiModelProperty(value = "电商平台二级商户号")
    @Length(max = 250, message = "电商平台二级商户号长度不能超过250")
    private String subMchid;
    /**
     * 汇款金额
     */
    @ApiModelProperty(value = "汇款金额")
    @Length(max = 250, message = "汇款金额长度不能超过250")
    private String payAmount;
    /**
     * 收款卡号
     */
    @ApiModelProperty(value = "收款卡号")
    @Length(max = 250, message = "收款卡号长度不能超过250")
    private String destinationAccountNumber;
    /**
     * 收款户名
     */
    @ApiModelProperty(value = "收款户名")
    @Length(max = 250, message = "收款户名长度不能超过250")
    private String destinationAccountName;
    /**
     * 省市信息
     */
    @ApiModelProperty(value = "省市信息")
    @Length(max = 250, message = "省市信息长度不能超过250")
    private String city;
    /**
     * 备注信息
     */
    @ApiModelProperty(value = "备注信息")
    @Length(max = 250, message = "备注信息长度不能超过250")
    private String remark;
    /**
     * 汇款截止时间
     */
    @ApiModelProperty(value = "汇款截止时间")
    @Length(max = 250, message = "汇款截止时间长度不能超过250")
    private String deadline;
    /**
     * 参数名称
     */
    @ApiModelProperty(value = "参数名称")
    @Length(max = 250, message = "参数名称长度不能超过250")
    private String paramName;
    /**
     * 驳回原因
     */
    @ApiModelProperty(value = "驳回原因")
    @Length(max = 250, message = "驳回原因长度不能超过250")
    private String rejectReason;
    /**
     * 法人验证链接
     */
    @ApiModelProperty(value = "法人验证链接")
    @Length(max = 250, message = "法人验证链接长度不能超过250")
    private String legalValidationUrl;
    /**
     * 微信支付申请单号
     */
    @ApiModelProperty(value = "微信支付申请单号")
    @Length(max = 250, message = "微信支付申请单号长度不能超过250")
    private String applymentId;
}
